package com.example.jobback.service.seeker;

import com.example.jobback.po.Deliver;
import com.example.jobback.po.Seeker;
import com.example.jobback.resp.recruiter.deliver.SeekerResumeResp;
import com.example.jobback.result.Result;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @InterfaceName: SeekerCrossService
 * @Description:跨服务-求职者接口
 * @Author: lhb
 * @Date: 2025/7/12
 */
@Service
public interface SeekerCrossService {

    /**
     * @Description: 根据userids获取求职者信息
     * @param userIds
     * @return List<Seeker>
     * @Author lhb
     * @CreateTime 2025/7/12 18:50
     */
    List<Seeker> getSeekersByUserIds(List<Long> userIds);

    /**
     * @Description: 根据招聘者UserId获取投递信息列表
     * @param recruiterUserId
     * @return List<Deliver>
     * @Author lhb
     * @CreateTime 2025/7/17 14:56
     */
    List<Deliver> getDeliversByRecruiterUserId(Long recruiterUserId, Boolean interview);

    /**
     * @Description: 邀约面试
     * @param id
     * @param recruiterUserId
     * @return int
     * @Author lhb
     * @CreateTime 2025/7/17 16:16
     */
    int interview(Long id, Long recruiterUserId);

    /**
     * @Description: 根据双方Userid查询投递记录
     * @param recruiterUserId
     * @param seekerUserId
     * @return Deliver
     * @Author lhb
     * @CreateTime 2025/7/25 15:15
     */
    Deliver getDeliverByBothUserId(Long recruiterUserId, Long seekerUserId);

    /**
     * @Description: 查看简历
     * @param userId
     * @return Result<SeekerResumeResp>
     * @Author lhb
     * @CreateTime 2025/7/25 15:21
     */
    SeekerResumeResp getSeekerResume(Long userId);

    /**
     * @Description: 获取简历投递数
     * @return Long
     * @Author lhb
     * @CreateTime 2025/7/25 15:52
     */
    Long getResumeDelivers();

    /**
     * @Description: 根据招聘者id删除投递信息
     * @param deleteUserId
     * @return void
     * @Author lhb
     * @CreateTime 2025/7/27 15:54
     */
    void deleteDeliverByRecruiterUserId(Long deleteUserId);

    /**
     * @Description: 根据职位id列表删除收藏信息
     * @param positionIdList
     * @return void
     * @Author lhb
     * @CreateTime 2025/7/27 15:58
     */
    void deleteCollectByPositionIds(List<Long> positionIdList);

    /**
     * @Description: 批量插入求职者数据
     * @param seeker
     * @return int
     * @Author lhb
     * @CreateTime 2025/7/30 10:24
     */
    int registerSeekerTest(Seeker seeker);
}
